package com.arpa.oms.domain.dto;

import com.arpa.oms.domain.entity.Sale;
import com.arpa.wms.domain.entity.BasicEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * OMS销售单DTO
 * </p>
 *
 * @author LEO
 * @since 2020-10-22
 */
@Data
@ApiModel(value = "OmsSale对象", description = "OMS销售单")
public class SaleDto extends BasicEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "销售单号")
    private String code;

    @ApiModelProperty(value = "来源单号")
    private String sourceCode;

    @ApiModelProperty(value = "所属机构Code")
    private String groupCode;

    @ApiModelProperty(value = "仓库标识")
    private String warehouseCode;

    @ApiModelProperty(value = "仓库标识集合")
    private List<String> warehouseCodes;

    @ApiModelProperty(value = "仓库名称")
    private String warehouseName;

    @ApiModelProperty(value = "入驻商")
    private String shipmentCode;

    @ApiModelProperty(value = "入驻商")
    private String shipmentName;

    @ApiModelProperty(value = "销售类型 normal:普通销售")
    private String saleType;

    @ApiModelProperty(value = "客户")
    private String customerCode;


    @ApiModelProperty(value = "订单数量（基本单位）")
    private BigDecimal planQuantity;

    @ApiModelProperty(value = "订单数量start")
    private BigDecimal planQuantityStart;

    @ApiModelProperty(value = "订单数量end")
    private BigDecimal planQuantityEnd;


    @ApiModelProperty(value = "发货数量（基本单位）")
    private BigDecimal actualQuantity;

    @ApiModelProperty(value = "发货数量Start")
    private BigDecimal actualQuantityStart;

    @ApiModelProperty(value = "发货数量End")
    private BigDecimal actualQuantityEnd;


   /* @ApiModelProperty(value = "创建时间Start")
    private LocalDateTime gmtCreatedStart;

    @ApiModelProperty(value = "创建时间End")
    private LocalDateTime gmtCreatedEnd;


    @ApiModelProperty(value = "修改时间Start")
    private LocalDateTime gmtModifiedStart;

    @ApiModelProperty(value = "修改时间End")
    private LocalDateTime gmtModifiedEnd;*/


    @ApiModelProperty(value = "付款金额")
    private BigDecimal paymentAmount;

    @ApiModelProperty(value = "欠款金额")
    private BigDecimal owedAmount;

    @ApiModelProperty(value = "状态：NEWS:新增、ANNUL:作废、PENDING: 待审核、PASS: 审核通过、NO_PASS：审核不通过")
    private String status;

    @ApiModelProperty(value = "拆单状态")
    private String unpackStatus;

    @ApiModelProperty(value = "合单状态")
    private String mergeStatus;

    @ApiModelProperty(value = "合单号")
    private String mergeCode;

    @ApiModelProperty(value = "审核列表查询时参数，审核状态：PENDING: 待审核、PASS: 审核通过、NO_PASS：审核不通过")
    private String auditStatus;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "审核人")
    private String verifyBy;

    @ApiModelProperty(value = "审核人姓名")
    private String verifyName;

    @ApiModelProperty(value = "审核意见")
    private String verifyOpinion;

    @ApiModelProperty(value = "WMS返回信息")
    private String wmsMessage;

    @ApiModelProperty(value = "审核时间Start")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime gmtVerifyStart;

    @ApiModelProperty(value = "审核时间End")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime gmtVerifyEnd;

    @ApiModelProperty(value = "店铺编码code")
    private String shopCode;

    @ApiModelProperty(value = "店铺名称")
    private String shopName;

    @ApiModelProperty(value = "买家姓名")
    private String buyerName;

    @ApiModelProperty(value = "买家电话")
    private String buyerMobile;

    @ApiModelProperty(value = "买家地址")
    private String buyerAddress;

    @ApiModelProperty(value = "国家")
    private String countryName;

    @ApiModelProperty(value = "省")
    private String provinceName;

    @ApiModelProperty(value = "市")
    private String cityName;

    @ApiModelProperty(value = "区县")
    private String countyName;

    @ApiModelProperty(value = "承运商编码code")
    private String carrierCode;

    @ApiModelProperty(value = "承运商名称")
    private String carrierName;


    @ApiModelProperty(value = "第几页")
    private Integer pageNum=1;

    @ApiModelProperty(value = "每页条数")
    private Integer pageSize=10;

    @ApiModelProperty(value = "排序字段")
    private String sortField;

    @ApiModelProperty(value = "排序方式")
    private String sortType;

    @ApiModelProperty(value = "平台标识")
    private String platformCode;

    @ApiModelProperty(value = "平台名称")
    private String platformName;

    @ApiModelProperty(value = "结算金额下限")
    private BigDecimal payAmountStart;

    @ApiModelProperty(value = "结算金额下限")
    private BigDecimal payAmountEnd;

    @ApiModelProperty(value = "快递单号（来自拼多多）")
    private String trackingNumber;

    @ApiModelProperty(value = "快递公司在拼多多的代码")
    private Long logisticsId;

    @ApiModelProperty(value = "买家留言")
    private String buyerMessage;


}
